iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
Mobile Development

Android studio 30天初學筆記系列 第 21

[Android Studio 30天挑戰] Day21 - 介紹Glide

  • 分享至 

  • xImage
  •  

今天要來介紹的是Glide,它用於載入圖片、視頻和GIF動畫。而Glide解決了你必須關心緩存,解碼,管理網路連接,執行緒和異常處理等。

Glide的優點

1.程式碼有人維護。
2.程式碼簡潔。
3.功能强大。(包含很多功能,例如:像加載Gif圖片)

依賴

dependencies

implementation ("com.github.bumptech.glide:glide:4.11.0") {
    exclude group: "com.android.support"
}
implementation 'com.github.bumptech.glide:glide:4.13.2'

Glide 中需要用到網路功能,因此你還得在 AndroidManifest.xml 中宣告一下網路許可權才行:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

Glide 語法

輸入圖片網址:

String url="https://memes.tw/download-imagename=64f9c2b295e72175fdebec660914abd6.png";
Glide.with(this).load(url).into(imageView);

https://ithelp.ithome.com.tw/upload/images/20220726/20150369CSONvxbjSZ.png
因為這是從網路上抓下來所以當按下抓圖片時,會跑一陣子才顯示。
所以我們可以在抓的時候先顯示,正在抓取的圖片。

RequestOptions options = new RequestOptions()
        .placeholder(R.drawable.loading);
Glide.with(this)
     .load(url)
     .apply(options)
     .into(imageView);

這裡建立一個 RequestOptions 物件,然後呼叫它的 placeholder() 方法來拿取佔位圖,再將佔點陣圖片的資源 id 傳入到這個方法中。最後,在 Glide 的三步走之間加入一個 apply() 方法,來應用我們剛才建立的 RequestOptions 物件。

RequestOptions options = new RequestOptions()
        .placeholder(R.drawable.loading)
        .diskCacheStrategy(DiskCacheStrategy.NONE);

這裡串接了一個 diskCacheStrategy() 方法,並傳入 DiskCacheStrategy.NONE 引數,這樣就可以禁用掉 Glide 的快取功能。

RequestOptions options = new RequestOptions()
        .placeholder(R.drawable.ic_launcher_background)
        .error(R.drawable.error)
        .diskCacheStrategy(DiskCacheStrategy.NONE);

這裡又串接了一個 error() 方法就可以指定異常佔位圖了。
這代表如果連線出現問題之類的抓不到圖片,就會放這張佔位圖。

RequestOptions options = new RequestOptions()
        .override(200, 100);

這裡是調整圖片大小。

  • 原始尺寸的話,可以使用 Target.SIZE_ORIGINAL"
Glide.with(this)
     .asBitmap()
     .load("http://guolin.tech/test.gif")
     .into(imageView);

如果你這張輸入的照片是gif的第一幀,你想要他靜態的時候可以加.asBitmap()。


上一篇
[Android Studio 30天挑戰] Day20 - 介紹RxJava2(下)
下一篇
[Android Studio 30天挑戰] Day22 - 介紹SharedPreferences
系列文
Android studio 30天初學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言